#include <iostream>
#include <string>
using namespace std;

// int main()
// {
//     string s1;
//     string s2("hello world");
//     string s3 = s2;

//     cout << s1 << endl;
//     cout << s2 << endl;
//     cout << s3 << endl;
//     return 0;
// }

// int main()
// {
//     string s1("hello world");
//     string s2(s1,0,5);
//     string s3(s1,6);
//     cout << s1 << endl;
//     cout << s2 << endl;
//     cout << s3 << endl;
//     return 0;
// }

// int main()
// {
//     string s1("hello world");
//     cout << s1.size() << endl;
//     cout << s1.length() << endl;

//     for(int i = 0; i < s1.size(); i++)
//     {
//         cout << s1[i] << " ";
//     }
//     cout << endl;

//     int begin = 0;
//     int end = s1.size() - 1;
//     while(begin < end)
//     {
//         // char temp = s1[begin];
//         // s1[begin] = s1[end];
//         // s1[end] = temp;

//         swap(s1[begin],s1[end]);
//         begin++;
//         end--;
//     }
//     cout << s1 <<endl;

//     string::iterator it = s1.begin();

//     while(it != s1.end())
//     {
//         cout << *it << " ";
//         it++;
//     }

//     cout <<endl;
//     return 0;
// }

// #include <algorithm>
// int main()
// {
//     string s1("hello world");
//     reverse(s1.begin(),s1.end());
//     cout << s1 <<endl;
//     return 0;
// }

// int main()
// {
//     try
//     {
//         string s1;
//         string s2("hello world");
//         //cout << "maxsize" << endl;
//         cout << s1.max_size() << endl;
//         cout << s2.max_size() << endl;
//         s1.reserve(s1.max_size());
//     }
//     catch(const std::exception& e)
//     {
//         std::cerr << e.what() << '\n';
//     }
//     //cout << sizeof(int) <<endl;
//     return 0;
// }

// void test()
// {
//     string s1;
//     s1.reserve(500);
//     size_t old = s1.capacity();
//     cout << old <<endl;
//     for(int i = 0; i < 500; i++)
//     {
//         s1.push_back('x');
//         if(old != s1.capacity())
//         {
//             old = s1.capacity();
//             cout << old <<endl;
//         }
//     }
// }

// void test()
// {
//     string s1("hello world");
//     cout << s1.capacity() <<endl;
//     s1.resize(2);
//     //s1.reserve(5);
//     cout << s1.capacity() <<endl; 
// }

// int main()
// {
//     test();
//     // string s1;
//     // string s2("hello worldxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx");
//     // cout << s1.capacity() <<endl;
//     // cout << s2.capacity() <<endl;
//     return 0;
// }


// int main()
// {
//     string s1("hello world");
//     s1.insert(s1.begin() + 5, 'C');
//     s1.insert(5, "XXXXXXXXXXXX");
//     cout << s1 <<endl;

//     s1.erase(5,6);
//     cout << s1 << endl;
//     return 0;
// }

// int main()
// {
//     string s1("hello world");
//     cout << s1 << endl;
//     s1.replace(5,1,"%%");

//     cout << s1 <<endl;
//     return 0;
// }


int main()
{
    string fileName("test.cpp");
    FILE* fout = fopen(fileName.c_str(),"r");
    char ch = fgetc(fout);
    while(ch != EOF)
    {
        cout << ch;
        ch = fgetc(fout);
    }
    return 0;  
}
  
